home *** CD-ROM | disk | FTP | other *** search
- // Copyright (C) 2001-2002 Raven Software.
- //
- // cg_public.h --
-
- /*
- ==================================================================
-
- functions imported from the main executable
-
- ==================================================================
- */
-
- #define CGAME_IMPORT_API_VERSION 4
-
- typedef enum
- {
- CG_PRINT,
- CG_ERROR,
- CG_MILLISECONDS,
- CG_CVAR_REGISTER,
- CG_CVAR_UPDATE,
- CG_CVAR_SET,
- CG_CVAR_VARIABLESTRINGBUFFER,
- CG_ARGC,
- CG_ARGV,
- CG_ARGS,
- CG_FS_FOPENFILE,
- CG_FS_READ,
- CG_FS_WRITE,
- CG_FS_FCLOSEFILE,
- CG_FS_GETFILELIST,
- CG_SENDCONSOLECOMMAND,
- CG_ADDCOMMAND,
- CG_SENDCLIENTCOMMAND,
- CG_UPDATESCREEN,
- CG_RMG_INIT,
- CG_CM_LOADMAP,
- CG_CM_NUMINLINEMODELS,
- CG_CM_INLINEMODEL,
- CG_CM_LOADMODEL,
- CG_CM_TEMPBOXMODEL,
- CG_CM_POINTCONTENTS,
- CG_CM_TRANSFORMEDPOINTCONTENTS,
- CG_CM_BOXTRACE,
- CG_CM_TRANSFORMEDBOXTRACE,
- CG_CM_MARKFRAGMENTS,
- CG_S_STARTSOUND,
- CG_S_STOPALLSOUNDS,
- CG_S_STARTLOCALSOUND,
- CG_S_CLEARLOOPINGSOUNDS,
- CG_S_ADDLOOPINGSOUND,
- CG_S_UPDATEENTITYPOSITION,
- CG_S_RESPATIALIZE,
- CG_S_REGISTERSOUND,
- CG_S_STARTBACKGROUNDTRACK,
- CG_AS_ADDPRECACHEENTRY,
- CG_AS_PARSESETS,
- CG_AS_UPDATEAMBIENTSET,
- CG_AS_ADDLOCALSET,
- CG_AS_GETBMODELSOUND,
- CG_R_LOADWORLDMAP,
- CG_R_REGISTERMODEL,
- CG_R_REGISTERSKIN,
- CG_R_REGISTERSHADER,
- CG_R_CLEARSCENE,
- CG_R_CLEARDECALS,
- CG_R_ADDREFENTITYTOSCENE,
- CG_R_ADDPOLYTOSCENE,
- CG_R_ADDDECALTOSCENE,
- CG_R_ADDLIGHTTOSCENE,
- CG_R_RENDERSCENE,
- CG_R_DRAWVISUALOVERLAY,
- CG_R_SETCOLOR,
- CG_R_DRAWSTRETCHPIC,
- CG_R_MODELBOUNDS,
- CG_R_LERPTAG,
- CG_R_DRAWROTATEPIC,
- CG_R_DRAWROTATEPIC2,
- CG_R_DRAWTEXT,
- CG_R_DRAWTEXTWITHCURSOR,
- CG_R_GETTEXTWIDTH,
- CG_R_GETTEXTHEIGHT,
- CG_GETGLCONFIG,
- CG_GETGAMESTATE,
- CG_GETCURRENTSNAPSHOTNUMBER,
- CG_GETSNAPSHOT,
- CG_GETDEFAULTSTATE,
- CG_GETSERVERCOMMAND,
- CG_GETCURRENTCMDNUMBER,
- CG_GETUSERCMD,
- CG_SETUSERCMDVALUE,
- CG_RW_SETTEAM,
- CG_RESETAUTORUN,
- CG_R_REGISTERSHADERNOMIP,
- CG_MEMORY_REMAINING,
- CG_R_REGISTERFONT,
- CG_KEY_ISDOWN,
- CG_KEY_GETCATCHER,
- CG_KEY_SETCATCHER,
- CG_KEY_GETKEY,
- CG_PC_ADD_GLOBAL_DEFINE,
- CG_PC_LOAD_SOURCE,
- CG_PC_FREE_SOURCE,
- CG_PC_READ_TOKEN,
- CG_PC_SOURCE_FILE_AND_LINE,
- CG_PC_LOAD_GLOBAL_DEFINES,
- CG_PC_REMOVE_ALL_GLOBAL_DEFINES,
-
- CG_MEMSET = 100,
- CG_MEMCPY,
- CG_STRNCPY,
- CG_SIN,
- CG_COS,
- CG_ATAN2,
- CG_SQRT,
- CG_ANGLEVECTORS,
- CG_PERPENDICULARVECTOR,
- CG_FLOOR,
- CG_CEIL,
- CG_TESTPRINTINT,
- CG_TESTPRINTFLOAT,
- CG_ACOS,
- CG_ASIN,
- CG_MATRIXMULTIPLY,
-
-
- CG_SP_GETSTRINGTEXTSTRING,
-
- CG_S_STOPBACKGROUNDTRACK,
- CG_REAL_TIME,
- CG_SNAPVECTOR,
- CG_REMOVECOMMAND,
- CG_R_LIGHTFORPOINT,
- CG_CIN_PLAYCINEMATIC,
- CG_CIN_STOPCINEMATIC,
- CG_CIN_RUNCINEMATIC,
- CG_CIN_DRAWCINEMATIC,
- CG_CIN_SETEXTENTS,
- CG_R_REMAP_SHADER,
- CG_R_GET_LIGHT_STYLE,
- CG_R_SET_LIGHT_STYLE,
- CG_FX_ADDLINE,
- CG_S_ADDREALLOOPINGSOUND,
- CG_S_STOPLOOPINGSOUND,
-
- CG_CM_TEMPCAPSULEMODEL,
- CG_CM_CAPSULETRACE,
- CG_CM_TRANSFORMEDCAPSULETRACE,
- CG_R_ADDADDITIVELIGHTTOSCENE,
- CG_GET_ENTITY_TOKEN,
- CG_R_ADDPOLYSTOSCENE,
- CG_R_INPVS,
-
- CG_FX_REGISTER_EFFECT,
- CG_FX_PLAY_SIMPLE_EFFECT,
- CG_FX_PLAY_EFFECT,
- CG_FX_PLAY_ENTITY_EFFECT,
- CG_FX_PLAY_SIMPLE_EFFECT_ID,
- CG_FX_PLAY_EFFECT_ID,
- CG_FX_PLAY_ENTITY_EFFECT_ID,
- CG_FX_PLAY_BOLTED_EFFECT_ID,
- CG_FX_ADD_SCHEDULED_EFFECTS,
- CG_FX_INIT_SYSTEM,
- CG_FX_FREE_SYSTEM,
- CG_FX_ADJUST_TIME,
- CG_FX_DRAW_2D_EFFECTS,
- CG_FX_RESET,
-
- CG_G2_LISTBONES,
- CG_G2_LISTSURFACES,
-
- CG_G2_ADDBOLT,
- CG_G2_SETBOLTON,
- CG_G2_REMOVEBOLT,
- CG_G2_ATTACHG2MODEL,
- CG_G2_DETACHG2MODEL,
-
- CG_G2_HAVEWEGHOULMODELS,
- CG_G2_SETMODELS,
- CG_G2_GETBOLT,
- CG_G2_INITGHOUL2MODEL,
- CG_G2_CLEANMODELS,
- CG_G2_ANGLEOVERRIDE,
- CG_G2_PLAYANIM,
- CG_G2_GETANIM,
- CG_G2_SETSURFACEONOFF,
- CG_G2_SETROOTSURFACE,
- CG_G2_SETNEWORIGIN,
- CG_G2_GETGLANAME,
- CG_G2_COPYGHOUL2INSTANCE,
- CG_G2_COPYSPECIFICGHOUL2MODEL,
- CG_G2_DUPLICATEGHOUL2INSTANCE,
- CG_G2_REMOVEGHOUL2MODEL,
- CG_G2_ADDSKINGORE,
- CG_G2_CLEARSKINGORE,
- CG_G2_SETGHOUL2MODELFLAGS,
- CG_G2_GETGHOUL2MODELFLAGS,
- CG_G2_SETGHOUL2MODELFLAGSBYINDEX,
- CG_G2_GETGHOUL2MODELFLAGSBYINDEX,
- CG_G2_GETNUMMODELS,
- CG_G2_GETANIMFILENAMEINDEX,
- CG_G2_FINDBOLTINDEX,
- CG_G2_GETBOLTINDEX,
-
- CG_G2_REGISTERSKIN,
- CG_G2_SETSKIN,
- CG_G2_COLLISIONDETECT,
-
- CG_MAT_RESET,
- CG_MAT_CACHE,
- CG_MAT_GET_SOUND,
- CG_MAT_GET_DECAL,
- CG_MAT_GET_DECAL_SCALE,
- CG_MAT_GET_EFFECT,
- CG_MAT_GET_DEBRIS,
- CG_MAT_GET_DEBRIS_SCALE,
-
- CG_CM_TM_CREATE,
- CG_CM_TM_ADDBUILDING,
- CG_CM_TM_ADDSPOT,
- CG_CM_TM_ADDTARGET,
- CG_CM_TM_UPLOAD,
- CG_CM_TM_CONVERT_POS,
-
- // CGenericParser2 (void *) routines
- GP_PARSE,
- GP_PARSE_FILE,
- GP_CLEAN,
- GP_DELETE,
- GP_GET_BASE_PARSE_GROUP,
-
- // CGPGroup (void *) routines
- GPG_GET_NAME,
- GPG_GET_NEXT,
- GPG_GET_INORDER_NEXT,
- GPG_GET_INORDER_PREVIOUS,
- GPG_GET_PAIRS,
- GPG_GET_INORDER_PAIRS,
- GPG_GET_SUBGROUPS,
- GPG_GET_INORDER_SUBGROUPS,
- GPG_FIND_SUBGROUP,
- GPG_FIND_PAIR,
- GPG_FIND_PAIRVALUE,
-
- // CGPValue (void *) routines
- GPV_GET_NAME,
- GPV_GET_NEXT,
- GPV_GET_INORDER_NEXT,
- GPV_GET_INORDER_PREVIOUS,
- GPV_IS_LIST,
- GPV_GET_TOP_VALUE,
- GPV_GET_LIST,
-
- CG_CM_REGISTER_TERRAIN,
- CG_RE_INIT_RENDERER_TERRAIN,
-
- CG_SET_SHARED_BUFFER,
-
- CG_VM_LOCALALLOC,
- CG_VM_LOCALALLOCUNALIGNED,
- CG_VM_LOCALTEMPALLOC,
- CG_VM_LOCALTEMPFREE,
- CG_VM_LOCALSTRINGALLOC,
-
- CG_UI_SETACTIVEMENU,
- CG_UI_CLOSEALL,
-
- } cgameImport_t;
-
-
- /*
- ==================================================================
-
- functions exported to the main executable
-
- ==================================================================
- */
-
- typedef enum
- {
- CG_INIT,
- // void CG_Init( int serverMessageNum, int serverCommandSequence, int clientNum )
- // called when the level loads or when the renderer is restarted
- // all media should be registered at this time
- // cgame will display loading status by calling SCR_Update, which
- // will call CG_DrawInformation during the loading process
- // reliableCommandSequence will be 0 on fresh loads, but higher for
- // demos, map restarts, or vid_restarts
-
- CG_SHUTDOWN,
- // void (*CG_Shutdown)( void );
- // oportunity to flush and close any open files
-
- CG_CONSOLE_COMMAND,
- // qboolean (*CG_ConsoleCommand)( void );
- // a console command has been issued locally that is not recognized by the
- // main game system.
- // use Cmd_Argc() / Cmd_Argv() to read the command, return qfalse if the
- // command is not known to the game
-
- CG_DRAW_ACTIVE_FRAME,
- // void (*CG_DrawActiveFrame)( int serverTime, stereoFrame_t stereoView, qboolean demoPlayback );
- // Generates and draws a game scene and status information at the given time.
- // If demoPlayback is set, local movement prediction will not be enabled
-
- CG_CROSSHAIR_PLAYER,
- // int (*CG_CrosshairPlayer)( void );
-
- CG_LAST_ATTACKER,
- // int (*CG_LastAttacker)( void );
-
- CG_KEY_EVENT,
- // void (*CG_KeyEvent)( int key, qboolean down );
-
- CG_MOUSE_EVENT,
- // void (*CG_MouseEvent)( int dx, int dy );
- CG_EVENT_HANDLING,
- // void (*CG_EventHandling)(int type);
-
- CG_POINT_CONTENTS,
-
- CG_GET_LERP_ORIGIN,
- // void CG_LerpOrigin(int num, vec3_t result);
-
- CG_GET_LERP_ANGLES,
- CG_GET_MODEL_SCALE,
- CG_GET_GHOUL2,
- CG_GET_MODEL_LIST,
-
- CG_CALC_LERP_POSITIONS,
- // void CG_CalcEntityLerpPositions(int num);
-
- CG_TRACE,
-
- CG_GET_ORIGIN, // int entnum, vec3_t origin
- CG_GET_ANGLES, // int entnum, vec3_t angle
-
- CG_GET_ORIGIN_TRAJECTORY, // int entnum
- CG_GET_ANGLE_TRAJECTORY, // int entnum
-
- CG_FX_CAMERASHAKE,
-
- CG_MISC_ENT,
-
- CG_MAP_CHANGE,
-
- CG_VOICE_EVENT,
-
- } cgameExport_t;
-
- // CG_POINT_CONTENTS
- typedef struct
- {
- vec3_t mPoint; // input
- int mPassEntityNum; // input
- } TCGPointContents;
-
- // CG_GET_LERP_ORIGIN
- // CG_GET_LERP_ANGLES
- // CG_GET_MODEL_SCALE
- typedef struct
- {
- int mEntityNum; // input
- vec3_t mPoint; // output
- } TCGVectorData;
-
- // CG_TRACE
- typedef struct
- {
- trace_t mResult; // output
- vec3_t mStart, mMins, mMaxs, mEnd; // input
- int mSkipNumber, mMask; // input
- } TCGTrace;
-
- // CG_FX_CAMERASHAKE
- typedef struct
- {
- vec3_t mOrigin; // input
- float mIntensity; // input
- int mRadius; // input
- int mTime; // input
- } TCGCameraShake;
-
- // CG_MISC_ENT
- typedef struct
- {
- char mModel[MAX_QPATH]; // input
- vec3_t mOrigin, mAngles, mScale; // input
- } TCGMiscEnt;
-
- /// CG_CM_TM_CONVERT_POS
- typedef struct
- {
- vec3_t mOrigin; // input
- int mWidth, mHeight; // input
- int mX, mY; // output
- } TCGConvertPos;
-
-
- #define MAX_CG_SHARED_BUFFER_SIZE 2048
-
-
- #define CMD_BACKUP 64
- #define CMD_MASK (CMD_BACKUP - 1)
- // allow a lot of command backups for very fast systems
- // multiple commands may be combined into a single packet, so this
- // needs to be larger than PACKET_BACKUP
-
-
- #define MAX_ENTITIES_IN_SNAPSHOT 256
-
- // snapshots are a view of the server at a given time
-
- // Snapshots are generated at regular time intervals by the server,
- // but they may not be sent if a client's rate level is exceeded, or
- // they may be dropped by the network.
- typedef struct {
- int snapFlags; // SNAPFLAG_RATE_DELAYED, etc
- int ping;
-
- int serverTime; // server time the message is valid for (in msec)
-
- byte areamask[MAX_MAP_AREA_BYTES]; // portalarea visibility bits
-
- playerState_t ps; // complete information about the current player at this time
-
- int numEntities; // all of the entities that need to be presented
- entityState_t entities[MAX_ENTITIES_IN_SNAPSHOT]; // at the time of this snapshot
-
- int numServerCommands; // text based server commands to execute when this
- int serverCommandSequence; // snapshot becomes current
- } snapshot_t;
-
- enum {
- CGAME_EVENT_NONE,
- CGAME_EVENT_TEAMMENU,
- CGAME_EVENT_SCOREBOARD,
- CGAME_EVENT_EDITHUD
- };
-
- //----------------------------------------------
-